<template>
  <!-- 布局容器 -->
  <el-container>
    <!-- 侧边栏 -->
    <el-aside :width="isCollapse?'60px':'200px'">
      <!--
          侧边栏导航
                default-active="2"            确定默认选中的项
                background-color="#545c64"    导航的背景颜色
                text-color="#fff"             文本颜色
                active-text-color="#FFD04B"   选中之后的颜色
                unique-opened                 只打开一个子菜单设为true
                collapse                      是否水平折叠收起菜单（仅在 mode 为 vertical 时可用）
                collapse-transition           是否开启折叠动画  默认 true
                router                        是否使用 vue-router 的模式，启用该模式会在激活导航时以 index 作为 path 进行路由跳转 默认false
      -->

      <el-menu background-color="#2f4050" text-color="#fff" unique-opened active-text-color="#FFD04B"
      :default-active="defaultActiveID" :collapse="isCollapse" :collapse-transition="false" router>
        <!-- 一级导航 -->
        <el-submenu :index="''+item.id" v-for="item in powerList" :key="item.id">
          <template slot="title">
              <!-- 一级导航的icon图标 -->
            <i :class="iconObj[item.id]"></i>
            <!-- 一级导航的文本 -->
            <span>{{item.authName}}</span>
          </template>
          <!-- 二级导航 -->
          <el-menu-item :index="'/'+items.path" v-for="items in item.children" :key="items.id" @click="saveDefaultActive('/'+items.path)">
            <template slot="title">
              <i class="el-icon-menu"></i>
              <span>{{items.authName}}</span>
            </template>
          </el-menu-item>
        </el-submenu>

      </el-menu>
    </el-aside>
    <!-- 页面主体 -->
    <el-container>
      <!-- 主体的头部 -->
      <el-header>
        <el-button type="success" size="mini" @click="isCollapse = !isCollapse">
          <i class="el-icon-tickets"></i>
        </el-button>
        <el-button type="info" @click="loginOut">退出</el-button>
      </el-header>
      <!-- 主体的内容区域 -->
      <el-main>
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
import { getPowerList } from '../api/user'
export default {
  data () {
    return {
      // 左侧权限列表存放的数组
      powerList: [],
      // 当前激活项的id
      defaultActiveID: this.$store.getters.getDefaultActiveId || '',
      // iconfont类名对象
      iconObj: {
        125: 'iconfont icon-wode-active',
        103: 'iconfont icon-xitongquanxian',
        101: 'iconfont icon-shangpin',
        102: 'iconfont icon-dingdan',
        145: 'iconfont icon-shujutongjipingtai'
      },
      // 导航menu菜单折叠和展开
      isCollapse: false
    }
  },
  async created () {
    // 获取左侧导航列表
    const { data: res } = await getPowerList()
    if (res.meta.status !== 200) return this.$message.error(res.meta.msg)
    this.powerList = res.data
  },
  methods: {
    // 保存当前激活的id
    saveDefaultActive (id) {
      this.$store.commit('SAVE_DefaultActive_DefaultActive_ID', id)
    },
    // 退出
    loginOut () {
      this.$store.commit('CLEAR_TOKEN')
      this.$router.push('/login')
    }
  }
}
</script>

<style lang="less" scoped>
.el-container {
  height: 100%;
  .el-aside {
    background-color: #2f4050;
    .el-menu{
        border-right: none;
    }
  }
  .el-header {
    border-bottom: 1px solid #dddddd;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
</style>
